# -*- coding: utf-8 -*- 
# @project : 《Atcoder》
# @Author : created by bensonrachel on 2021/9/16
# @File : 5.Minimizing Coins.py

MAX_INT = 1000001

def solve():
    dp = [MAX_INT] * (x + 1)
    dp[0] = 0
    for i in range(1,n+1):
        for j in range(rate[i],x+1):
            dp[j] = min(dp[j],dp[j-rate[i]]+1)
    return dp[x]

"""
参照完全背包模式，一个物品可以选多次，与3.Coin Combinations II类似的结构，只不过本题是算最小值。
也有点超大容量背包那味，因为这题的dp[j]是求最小的数量（相当于背包题里的重量），而j则是值（相当于背包题里的价值）,输出的还是最小的数量
"""
if __name__ == '__main__':
    n,x = map(int ,input().split())
    rate = [int(i) for i in input().split()]
    rate = [0] + rate
    ans = solve()
    if ans == MAX_INT:
        ans = -1
    print(ans)